// vim: ff=unix : foldmethod=marker : foldmarker=<<<,>>>
/*
 File: integer.h
 Product: NOL Base
 Creating date: 06/01/2005 15:01
 Remark: 
*/
#ifndef lite_integerH
#define lite_integerH

#include "lite/define.h"

typedef unsigned char i1_t; //byte
typedef i1_t *  i1_p; typedef i1_p *  i1_pp;
typedef signed char i1s_t; //sbyte
typedef i1s_t *  i1s_p; typedef i1s_p *  i1s_pp;

typedef unsigned short i2_t; //word
typedef i2_t *  i2_p; typedef i2_p *  i2_pp;
typedef signed short i2s_t; //sword
typedef i2s_t *  i2s_p; typedef i2s_p *  i2s_pp;

#if defined(PL_MAC) && defined(__LP64__)
typedef unsigned int i4_t; //dword
typedef i4_t *  i4_p; typedef i4_p *  i4_pp;
typedef signed int i4s_t; //sdword
typedef i4s_t *  i4s_p; typedef i4s_p *  i4s_pp;
#else
typedef unsigned long i4_t; //dword
typedef i4_t *  i4_p; typedef i4_p *  i4_pp;
typedef signed long i4s_t; //sdword
typedef i4s_t *  i4s_p; typedef i4s_p *  i4s_pp;
#endif

#if defined(CC_MSC) 
typedef unsigned __int64 i8_t; //qword
typedef i8_t *  i8_p; typedef i8_p *  i8_pp;
typedef signed __int64 i8s_t; //sqword
typedef i8s_t *  i8s_p; typedef i8s_p *  i8s_pp;
#elif defined(CC_GCC)
typedef unsigned long long int i8_t; //qword
typedef i8_t *  i8_p; typedef i8_p *  i8_pp;
typedef signed long long int i8s_t; //sqword
typedef i8s_t *  i8s_p; typedef i8s_p *  i8s_pp;
#endif

#if defined(PL_MAC) && defined(__LP64__)
typedef unsigned long i_t; //unsigned int 
typedef i_t *  i_p; typedef i_p *  i_pp;
typedef signed long is_t; //signed int
typedef is_t *  is_p; typedef is_p *  is_pp;
#else
typedef unsigned int i_t; //unsigned int 
typedef i_t *  i_p; typedef i_p *  i_pp;
typedef signed int is_t; //signed int
typedef is_t *  is_p; typedef is_p *  is_pp;
#endif

#define I1S_MIN -128
#define I1S_MAX 127
#define I1_MIN 0
#define I1_MAX 0xff
#define I2S_MIN -32768
#define I2S_MAX 32767
#define I2_MIN 0
#define I2_MAX 0xffff
#define I4S_MIN -2147483648
#define I4S_MAX 2147483647
#define I4_MIN 0
#define I4_MAX 0xffffffff

#endif
